Repository of a self-made Digital Oscilloscope Project. Guided by ELEN90053 Electronic System Design subject at the University of Melbourne.
- Printed Circuit Board designed in Altium Designer.
- Atmega16 microcontroller programmed in C.
- ESP8266 WiFi chip with OLED Screen Display.
- Web Interface displaying waveform and discrete fourier transform plots, developed using Express.js, HighCharts and Materialize.
Within the Digital Oscilloscope (DSO), the following subsystems are involved:
- Front End
- BNC (input signal goes here)
- Clamping Circuit
- Scaling Network, Buffer
- Anti-Aliasing Filter
- Offset Circuit (Level Shifter)
- Analog to Digital Conversion Circuit
- Samples Analog Signals (from BNC Input)
- Stores sampled signals into RAM
- RAM Circuit
- Sampled data is stored here
- Complex Programmable Logic Device (CPLD)
- Group of programmable logic gates that
- Handle and route high frequency signals in system.
- Input/Output (USB to UART connection) to PC
- Connects USB Power to Power circuit
- Converts USB data to UART
- Trigger
- Comparator circuit that compares the current input signal with the DAC's analog voltage to stabalize output waveform.
- Power
- Provides power supply voltage and current to overall circuit.
- USB Voltage to +5V, -5V conversion
- 5V to 3.3V conversion
- Control
- Main brain of the entire system.
- Micro-controller (ATMEGA-16)
- Buttons for Control
- Counter Circuit
- Generates up to 2^16 addresses for samples to be stored in RAM.
Below is the planned overall block diagram of the entire oscilloscope system.
Generated Top Layer of 2D PCB Design file from Altium Designer.
Generated Top Layer of 3D PCB Design file from Altium Designer.
Final PCB Design:
- Input signal travel from the BNC and is pre-processed for the ADC to sample.
- Each data is stored onto the ram with up to 2^16 bit addresses generated by 2 8-bit counters.
- Once ram is full, samples are then sent to the micro-controller and counters reset.
- After receiving all samples, MCU sends samples to the computer GUI to plot the data using UART.
- While sending samples, the ESP8266 chip also receives samples and sends plot data to the Web Interface.